<html xmlns="http://www.w3.org/1999/xhtml">
  <!--
  https://bugzilla.mozilla.org/show_bug.cgi?id=1359859
  -->
  <head>
    <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    <bindings xmlns="http://www.mozilla.org/xbl">
      <binding id="testBinding">
        <implementation>
          <constructor>
            XPCNativeWrapper.unwrap(window).running();
            this.constructed = true;
            throw new Error("Constructor threw");
          </constructor>
          <field name="throwingField">throw new Error("field threw")</field>
          <field name="normalField">"hello"</field>
        </implementation>
      </binding>
    </bindings>
    <script>
      // We need to wait for the binding to load.
      SimpleTest.waitForExplicitFinish();
      function running() {
        // Wait for the rest of the constructor to run
        SimpleTest.executeSoon(function() {
          is(document.getElementById("bound").throwingField, undefined,
             "Should not have a value for a throwing field");
          is(document.getElementById("bound").normalField, "hello",
             "Binding should be installed");
          // The real test is that we haven't gotten any error events so far.
          SimpleTest.finish();
        });
      }
    </script>
  </head>
  <body>
    <div id="bound" style="-moz-binding: url(#testBinding)"/>
  </body>
</html>
    
